Page({
  /**
   * 页面的初始数据
   */
  data: {
    comments: [],        // 评论列表数据
    isLoading: false     // 加载状态标记
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 从本地缓存获取用户ID并加载评论
    this.loadUserIdAndComments();
  },

  /**
   * 从本地缓存获取用户ID并加载评论
   */
  loadUserIdAndComments() {
    // 1. 从本地缓存读取用户信息
    const userInfo = wx.getStorageSync('userInfo');
    const userId = wx.getStorageSync('userId') || (userInfo?.id || null);

    // 2. 校验用户ID是否存在
    if (!userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none',
        duration: 2000
      });
      setTimeout(() => {
        wx.navigateTo({ url: '/pages/login/login' });
      }, 2000);
      return;
    }

    // 3. 已获取用户ID，加载评论数据（调用修改后的接口）
    this.getCommentsByUserId(userId);
  },

  /**
   * 调用接口获取指定用户的评论数据（修改接口地址和参数传递）
   * @param {number} userId - 当前登录用户ID（用于接口请求参数）
   */
  getCommentsByUserId(userId) {
    if (this.data.isLoading) return;
    this.setData({ isLoading: true });
    wx.showLoading({ title: '加载评论中...', mask: true });

    console.log('当前请求的用户ID：', userId);
    const token = wx.getStorageSync('token');
    console.log('当前携带的Token：', token || '未获取到Token');

    // ！！核心修改1：替换为你的接口地址，通过query参数传递userId
    wx.request({
      url: `http://localhost:8080/userr/comments/my?userId=${userId}`,
      method: 'GET',
      timeout: 10000,
      header: {
        'content-type': 'application/json',
        'Authorization': `Bearer ${token}` // 若后端不需要token可删除此句
      },
      success: (res) => {
        console.log('接口返回原始数据：', res.data);

        if (res.statusCode === 401) {
          wx.showToast({ title: '登录已过期，请重新登录', icon: 'none' });
          setTimeout(() => { wx.navigateTo({ url: '/pages/login/login' }); }, 2000);
          return;
        }

        if (res.statusCode === 200) {
          const responseData = res.data || [];
          if (Array.isArray(responseData)) {
            // ！！核心修改2：根据接口返回的嵌套结构格式化数据
            const formattedComments = responseData.map(comment => ({
              // 评论者信息（适配commentUser嵌套对象）
              avatar: comment.commentUser?.avatarUrl || '/images/default-avatar.png',
              username: comment.commentUser?.nickname || '匿名用户',
              // 评论时间（直接使用createTime字段）
              time: this.formatTime(comment.createTime),
              // 评论内容
              content: comment.content || '暂无内容',
              // 被评论的作品信息（适配targetWork嵌套对象）
              target: {
                img: comment.targetWork?.coverImg || '/images/default-cover.png',
                title: `作品ID: ${comment.targetId || '未知'}`,
                content: comment.targetWork?.content || '暂无简介'
              },
              // 评论者ID和作品ID（用于跳转）
              commentUserId: comment.commentUser?.id || null,
              workId: comment.targetId || null
            }));

            console.log('格式化后的数据：', formattedComments);
            this.setData({ comments: formattedComments });
          } else {
            wx.showToast({ title: '数据格式错误', icon: 'error' });
            console.error('接口返回非数组：', responseData);
          }
        } else {
          wx.showToast({ title: `请求失败(${res.statusCode})`, icon: 'error' });
          console.error('接口状态码异常：', res.statusCode, res.data);
        }
      },
      fail: (err) => {
        wx.showToast({ title: '网络异常，请稍后重试', icon: 'error' });
        console.error('接口请求失败：', err);
      },
      complete: () => {
        this.setData({ isLoading: false });
        wx.hideLoading();
        wx.stopPullDownRefresh();
      }
    });
  },

  /**
   * 格式化时间为友好显示（保持不变）
   */
  formatTime(timeStr) {
    if (!timeStr) return '未知时间';
    try {
      // 适配接口返回的时间格式（如"2025-08-15 17:00:49"）
      const commentTime = new Date(timeStr.replace(' ', 'T')).getTime();
      const nowTime = new Date().getTime();
      const diffSeconds = Math.floor((nowTime - commentTime) / 1000);

      if (diffSeconds < 60) return `${diffSeconds}秒前`;
      else if (diffSeconds < 3600) return `${Math.floor(diffSeconds / 60)}分钟前`;
      else if (diffSeconds < 86400) return `${Math.floor(diffSeconds / 3600)}小时前`;
      else if (diffSeconds < 2592000) return `${Math.floor(diffSeconds / 86400)}天前`;
      else return timeStr.split(' ')[0]; // 超过30天显示"2025-08-15"
    } catch (e) {
      console.error('时间格式化失败：', e);
      return timeStr.split(' ')[0] || '未知时间';
    }
  },

  /**
   * 左箭头点击事件：返回上一页（保持不变）
   */
  onBack() {
    wx.navigateBack({ delta: 1 });
  },

  /**
   * 跳转用户中心（适配格式化后的数据字段）
   */
  // 跳转用户中心（携带目标用户ID）
  gotoUserCenter(e) {
    const userId = e.currentTarget.dataset.userid;
    console.log('要传递的userId：', userId);
    wx.navigateTo({ url: `/my/pages/user-detail/user-detail?userId=${userId}` });
  },

  /**
   * 跳转作品详情（适配targetId作为作品ID）
   */
  goToRecipeDetail(e) {
    // 从事件中获取作品ID（对应formattedComments中的workId）
 
  const recipeid = e.currentTarget.dataset.recipeid;
  const app = getApp();
  const userId = app.globalData.userInfo?.id;
  console.log("userId",userId);
  console.log("recipeid:",recipeid);
    if (!recipeid) {
      wx.showToast({ title: '作品ID无效', icon: 'error' });
      return;
    }
    wx.navigateTo({ url: `/find/pages/findDetail/findDetail?id=${recipeid}&authorId=${userId}` });
  },

  /**
   * 下拉刷新（保持不变）
   */
  onPullDownRefresh() {
    console.log('触发下拉刷新，重新加载数据...');
    this.loadUserIdAndComments();
  },

  /**
   * 生命周期函数--监听页面显示（保持不变）
   */
  onShow() {
    if (this.data.comments.length === 0) {
      this.loadUserIdAndComments();
    }
  },

  /**
   * 页面上拉触底（保持不变）
   */
  onReachBottom() {
    wx.showToast({ title: '已加载全部评论', icon: 'none' });
  },

  /**
   * 分享功能（保持不变）
   */
  onShareAppMessage() {
    return {
      title: '评论列表',
      path: '/pages/comments/comments'
    };
  }
});